In the last decade, the rapidly decreasing cost of computers, coupled with simultaneous performance gains, as well as the growing availability of inexpensive access to high speed telecommunications, have resulted in a dramatic jump in the installed base of computers and broadband telecommunication connections both in consumer and commercial areas.
In addition to demand for application programs that enable computers to perform a dizzying array of tasks, the proliferation of computers and low-cost high-speed telecommunications, also created an ever-growing demand for “content”—information that can be viewed and interacted with using computers equipped with appropriate application programs, and that can be sent and received from other computers through a telecommunication connection.
Not surprisingly, this course of events has led to constantly increasing availability of enormous amounts of information in a vast range of topics. With computer users being faced with an overwhelming selection of content, the challenges of facilitating access to, and interaction with content, have grown in importance.
Typically, content is presented to users in form of documents—virtual structures used by computers to enable content to be created, viewed, organized, edited, formatted, stored, deleted and otherwise interacted with, A document may include a single type of data (e.g., a text file, or an image), or it may include a wide variety of data types, and may itself include multiple documents and defined relationships therebetween (e.g., an elaborate Internet website with content feeds and other features, an interactive multimedia presentation, or a complex spreadsheet with macros), Thus, for example, a document can contain a single individual data item, such as a bitmap image, or one or more dynamic content feeds and/or to an interactive directory of other documents, and so on.
A document may be static—changeable only by editing it (e.g., a word processing document stored on a user's local computer, or it may be dynamic—changing on a continual basis, (e.g., incorporating constantly updated new content, for example, if the document is a website, through use of content feeds (XML, Podcasts, RSS, etc.)). Furthermore, while relatively recently there was a significant distinction between the ability to interact with content located on a user's computer system (or computer network), and with content available remotely (for example over the Internet), currently, and in the foreseeable future, this distinction continues to decrease, In fact, popular computer operating systems such as Windows®, and application programs designed for these systems, have been moving in the direction of eliminating the distinction entirely.
One of the key solutions to improving the ability of computer users to interact with content, whether local or remote, has been development of powerful application programs for handling complex documents having a variety of possible dynamic and/or static content. The most common form of these applications are used in conjunction with accessing the Internet, and are called “browsers” or “web browsers”. Of course, as was noted above, even traditional local computer applications, such as word processing applications, have recently received the capabilities of handling complex documents by incorporating certain browser functionality.
Because complex documents are typically a collection of linked smaller documents, interaction with such document typically includes navigating between various portions of the document, for example, by activating links to other portions of the document (e.g., by selecting highlighted “hyperlinks”). Navigation is an activity that can quickly move the user to different portions of the document and in many cases to other remote documents entirely (for example if the user activates a link to another website). Accordingly, the ability to control the navigation (for example by using the “back” and “forward” buttons on the document handling application), is essential to a proper interaction experience,
One particular challenge for content navigation, is that even using a handling application with proper navigational capabilities, it is easy to lose track of one's location in the overall document structure, or to find oneself viewing a document far removed from the document where the user started the navigation process. Additionally, because many types of documents (especially websites) depend on visitor presence and participation for ad revenue, there is a very significant goal of attracting visitors by offering interesting content (which typically involves making the document more complex and using many off-website links), but at the same time encouraging the user not to leave the website to pursue the presented content.
To address the above challenge, many users typically utilize multiple instances of the handling application so that they can interact with different content in each application. However, this approach is very problematic because running multiple instances of complex applications creates a significant load on the computer and its operating system causing a drop in performance. In addition, unless the user is lucky enough to have a very large display screen (or multiple displays), it is only possible to view a small amount of handling applications (no more than two or three) at the same time, and even then, at the expense of drastically reduced document viewing area. As a result, most users typically use one handling application while others remain in the background, and switch between applications as necessary. In addition, this attempted solution does not address a situation where the website is designed to present multiple concurrent documents.
One attempt at solving the above problem involves the use of a “tabbed” handling application where activating each tab reveals a separate document in a single instance of a handling application, such that the user can readily switch between multiple documents without worrying about arranging multiple instances of the application on their display. However, this approach fails to address the crux of the challenge, because it does not able to the user to concurrently engage in different content navigation/interaction activities—the user can still only use one document at a time,
Another proposed solution for the above challenge was to focus on providing the handling application with additional modules (also called “plug-ins”, “applets”, “controls”, “widgets”, etc.), that enable certain types of predefined content to be displayed proximal to, but independently from, the document. For example, the handling application may be provided with a “sidebar” showing the local weather, displaying links to recent news stories, and providing a content feed. While this approach achieved some success, it is restricted to use with specific content determined by the module, and thus does not allow the possibility of concurrent independent navigation with content not covered by the module. More importantly, while the user has some limited interaction with content provided through the module, none of the previously known modules allow the user to navigate (i.e., to move back and forward) through the content as part of the interaction. Furthermore, due to the wide variety and easy availability of modules there is a real risk in utilizing too many modules or a poorly designed module that may damage the handling application.
A different challenge related to content interaction activities is the question of how content is organized and presented in a document, especially if the document includes content of different types or formats, and/or from different sources. One proposed and popular solution, applicable to website documents, involved the introduction of document structure techniques called FRAMESETs and later, more advanced techniques called iFRAMEs. The FRAMESET techniques allowed a document to be easily split into multiple regions or “frames”, with various content being placed in each frame, essentially allowing multiple documents to be simultaneously displayed. iFRAMES provided an improvement to this functionality by essentially allowing a document to include one or more easily definable frames in any desired location, with each frame capable of displaying content. While these solutions partially addressed the above challenges, they both have a key flaw that prevent them from fully addressing the challenge—while a user can interact with content in a frame, for example by following a link to another document placed therein, the user is forced to use the navigation control of the handling application which may be extremely confusing and counter-intuitive.
Thus, none of the previously known content interaction approaches enable a user of a document to navigate content in a certain portion of the document without utilizing the navigation controls of the handling application.
It would thus be desirable to provide a system and method for enabling users of a document to engage in at least one additional concurrent content navigation/interaction activity in the document, and/or in the application handling the document, without affecting the user's document interaction activity It would also be desirable to provide a system and method for implementing the above independent content navigation capabilities in a rapid and convenient manner. It would additionally be desirable to provide a system and method for implementing the above independent additional content navigation capabilities within any document, without requiring any modification to the handling application. It would further be desirable to provide a system and method for enabling rapid and convenient modification of previously obtained independent content navigation capabilities.